A typical computer system includes a central processing unit (CPU), a main memory unit, and at least one input/output (I/O) unit. The main memory unit stores information, including data and instructions for processing the data, in addressable storage locations. The CPU initiates transfers of the information between it and the main memory unit. The CPU interprets the incoming information as either instructions or data, and processes the data in accordance with the instructions. The results are then stored in the addressable locations in main memory unit.
The I/O unit also communicates with the main memory unit in order to transfer information into the system and to obtain processed data from it. The I/O unit normally operates in accordance with control information supplied to it by the CPU. The control information defines an I/O operation to be performed by the I/O unit, such as the transfer of program information, i.e., information used by a software program, between the I/O unit and the main memory unit. Typical devices comprising the I/O unit may include printers and video display terminals, or secondary information storage devices such as disks or tapes.
Because a computer system contains many units and devices with complex interrelationships implemented in both hardware and software, there are typically many faults that may occur in a variety of ways in the system. Extensive testing of the system may reveal faulty hardware devices and identifiable defects in the design of the hardware and software. However, some failures, e.g. intermittent failures, only manifest during interaction between certain devices and, even then, only during specific times and sequences. Typically, these intermittent failures are detected only after weeks or months of normal operation. Attempts to simulate these extended periods of normal operation in hopes of uncovering such failures involve time consuming procedures.
For example, multiple computer programs have been employed to test a variety of computer device interaction paths when "exercising" a computer system. Once a defect is detected, additional software is developed to extensively test that particular interaction path. Development of such special-purpose software is expensive and time consuming.
Therefore, it is among the objects of the invention to provide a method and apparatus for efficiently creating device interaction paths to manifest intermittent device failures.
Another object of the invention is to provide a method and apparatus for quickly creating combinations of device interaction paths to manifest intermittent device failures.